package service;

import java.rmi.*;
import java.util.*;


/**
 * The remote interface for a simple warehouse.
 * 
 * The capabilities of remote objects are expressed in interfaces
 * that are shared between the client and the server.
 * This interface thus describes the service provided by a remote
 * warehouse object.
 * 
 * Interfaces for remote objects must always extend the Remote interface.
 * All remote methods must declare they will throw a RemoteException
 *  (in case something goes wrong during invocation, the client must be able to deal with that).
 */
public interface Warehouse extends Remote {
	double getPrice(String description) throws RemoteException;
	/**
	 * Given a list of keywords, the warehouse returns the Product that is the best match.
	 * @param keywords
	 * @return
	 * @throws RemoteException
	 */
	Product getProduct(List<String> keywords) throws RemoteException;
}
